"Astrocade Screen Layout: 102 x 160 Graph Paper"
By Adam Trionfo
April 12, 2016


I)  Summary
    -------

This documentation explains how to use Bally Arcade/Astrocade screenshots taken 
from the Astrocade emulator included with MAME to create screen layouts that 
can be used to help understand how an Astrocade program functions (such as how 
the screen is built).


II)  Required: Files and Graphics Editor
     -----------------------------------

This documentation is included in an archive with the following files:

1) Astrocade Screen Layout - 102 x 160 Graph Paper (Cropped)(With Layers).tif
2) Astrocade Screen Layout - 102 x 160 Graph Paper (Doc).txt
3) Incredible Wizard (Astrocade Screen Layout)(Graph Paper 102 x 160).gif
4) Incredible Wizard - Level 001 (Enlarged).png
5) Incredible Wizard - Level 001 (Small).png

The user is presumed to be able to open and manipulate at least four different 
graphic files: TIF (with layers), JPG, GIF and PNG.  A quality graphics editor, 
such as Photoshop or GIMP, is required.  


III)  Graph Paper and the Astrocade's Screen Layout
      ---------------------------------------------

The Bally Arcade/Astrocade's maximum screen resolution is 102 x 160 pixels.  To 
help create graphics for the console, Spectre Systems created special graph 
paper in the early 1980s that simulated the Astrocade's screen layout.  It 
showed all 16,320 memory locations of the Astrocade's screen.  You can view the 
graph paper created by Spectre here:

http://www.ballyalley.com/ml/ml_docs/astrocade_programming_sheets.pdf#page=4

Notice the left-side of the graph paper has four-digit hexadecimal numbers 
placed every ten lines.  These digits are the memory addresses of the 
Astrocade's Screen RAM.  The top-left square is memory address $4000.  Line 
101's first memory address is $4FA0.  The last byte of memory in Screen RAM is 
$4FEF (the bottom-right square).  More information about the Astrocade's screen 
layout is available in the book "Software and Hardware for the Bally Arcade - A 
Technical Description" (aka "Nutting Manual" and/or "The Handbook of Hardware & 
Software").

Here is an example of the the Spectre graph paper in use.  This graph paper was 
used to create the title screen for Spectre's cartridge game called "ICBM 
Attack."
 
http://www.ballyalley.com/documentation/spectre_systems/ICBM_Attack_concept_art
/ICBM_Attack_02.jpg

As you can see from the above picture, Spectre used their graph paper to draw a 
screen.  This picture was then translated to data for the program and used as 
the game's title screen.  However, we're going to be working in reverse: taking 
a screenshot (completed graphics) and placing it onto graph paper.


IV)   Astrocade Graph Paper: 21'st Century Style
      ------------------------------------------

Using Photoshop CS2, I recreated a worksheet (graph paper) layout for use with 
the Astrocade screenshots taken in the Astrocade emulation in MAME.  
Screenshots taken using MAME include all of the Astrocade's overscan area of 
the screen, but the true resolution of the Astrocade is ONLY what lies within 
the border of the graph paper.  The re-created graph paper in this archive is 
called:

Astrocade Screen Layout (Graph Paper 102 x 160)(Cropped)(With Layers).tif

The Astrocade Screen Layout uses five layers, plus a background.

The dimensions of this graph paper are:

DPI    -  720/inch
Width  -  7040 pixels
Height -  4800 pixels 
Width  -  9.778 inches
Height -  6.667 inches

A screenshot in MAME is saved as a PNG with these dimensions:

DPI    -  72/inch
Width  -  352 pixels
Height -  240 pixels 
Width  -  4.889 inches
Height -  3.333 inches

For an example of a MAME screenshot, open and view the picture "Incredible 
Wizard - Level 001 (Small).png"

The general idea to make this screenshot more useful is to take the screenshot 
from MAME, resize it, and paste it onto the recreated Astrocade layout graph 
paper.  The MAME screenshot will be pasted "below" the grid of the graph paper; 
therefore, the screenshot will appear "behind" the grid of blue lines that 
makes the graph paper.

(Note that these instructions will give you a general idea of how to use the 
Astrocade graph paper, but these are not step-by-step directions-- a 
familiarity with graphic editors is required here.)

Here's how to resize an image in Photoshop (hopefully these tips will help 
people who use other graphics editors, like GIMP).  First, open up the example 
found in the archive called "Incredible Wizard - Level 001 (Small).png."  
Follow these directions to create a screenshot:

1) Change the image size.

2) Make sure "Constrain Proportions" is clicked.

3) Set "Resample Image" to "Nearest Neighbor."  The default is "bicubic--" you 
DON'T want that, as it will blur your image when it is resized.

4) Change "Resolution to 720."  As long as "Constrain Proportions" is clicked, 
this will automatically change the Height to 2400 pixels and Width to 3520 
pixels.

5) Now change Height to 4800 pixels.  This will automatically change Width to 
7040 pixels.

6) With these changes made, the screenshot is exactly the same size as the 
"graph paper."

7) Now select the entire screenshot and copy it as a new layer directly under 
the layer called "Grid" on the "Graph Paper."

8) The screenshot should fill the entire "graph paper" perfectly.  Anything 
outside of the graph paper's blue outline is the Astrocade's screen's overscan 
area.

9) Your finished picture should look like the included image called "Incredible 
Wizard (Astrocade Screen Layout)(Graph Paper 102 x 160).gif"

Now that we've gone and placed a screenshot on graph paper, let's take 
advantage of what we can do with it.


V)    Learning from Resized Screenshots on "Graph Paper"
      --------------------------------------------------

As you can see in the resized picture, the bottom 11 lines of the screen are 
not displayed (the color of these lines in "The Incredible Wizard" screenshot 
has been changed to black-- just like the overscan area).  This allows these 
440 bytes of Screen RAM (from $4F38 - $4FEF) to be used as scratchpad.  In 
addition to the 440 bytes of RAM that have been set aside for scratchpad by 
blanking the screen, there are also the 16 bytes of non-screen RAM (from $4FF0-
$4FFF), giving to total of 454 bytes free RAM for the "Incredible Wizard" to 
work with.  Other games on the Astrocade, such as "Muncher," use blank areas of 
the screen for RAM.  Perhaps "Wizard" manages to scrape together a few more 
bytes of RAM using this method.

I had planned to use this picture of "The Incredible Wizard" to see if I could 
figure-out how the game drew the dungeon layouts, but now I doubt that I'll use 
it for that reason (I've moved onto other projects).

Pasting MAME screenshots onto the "Astrocade Screen Layout Graph Paper" will 
allow you to use MAME screenshots in new ways.  You'll soon learn that there is 
a lot of power in know exactly what the screen RAM layout looks like when a 
picture is displayed on it.  Try using the screenshot/graph paper combination 
with a Z80 disassembler (such as "DZ80").  This will allow you to figure-out 
how a program draws and lays out a screen much easier.

Until next time, Astrocade fans... Keep Buggin'
